package org.ym.basic.base;

import lombok.Data;

import java.io.Serializable;

/**
 * 返回结果
 * @author ym
 */
@Data
public class ApiResult <T> implements Serializable {
    private static final long serialVersionUID = 5331517017921884483L;
    /**
     * 状态码
     */
    private String code;
    /**
     * 信息
     */
    private String info;
    /**
     * 数据
     */
    private T data;

    public ApiResult() {
    }

    public ApiResult(String code, String info, T data) {
        this.code = code;
        this.info = info;
        this.data = data;
    }

    /**
     * 成功
     * @param data 数据
     * @return 对象
     * @param <T> 类型
     */
    public static <T> ApiResult ok(T data) {
        return new ApiResult("1", "", data);
    }

    /**
     * 失败,提示
     * @param message 信息
     * @return 对象
     * @param <T> 类型
     */
    public static <T> ApiResult info(String message) {
        return new ApiResult("-1", message, null);
    }


    /**
     * 失败,警告
     * @param message 信息
     * @return 对象
     * @param <T> 类型
     */
    public static <T> ApiResult warn(String message) {
        return new ApiResult("-2", message, null);
    }

    /**
     * 失败，严重错误
     * @param message 信息
     * @return 对象
     * @param <T> 类型
     */
    public static <T> ApiResult error(String message) {
        return new ApiResult("-3", message, null);
    }
}
